// createStore：方法 用来生成store实例对象 （new Vuex.Store()）
import { createStore } from 'vuex'
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'
// 引入插件
import createPersistedstate from 'vuex-persistedstate'
// import Cookies from 'js-cookie'

export default createStore({
  // 定义数据
  state: {
  },
  // 定义同步方法
  mutations: {
  },
  // 定义异步方法
  actions: {
  },
  // 模块化入口
  modules: {
    user,
    cart,
    category
  },
  // 插件选项
  plugins: [
    // 配置各种插件
    // 机制：只要你触发state数据的修改 就会自动完成同步到本地
    // mutation
    createPersistedstate({
      key: 'erabbit-client-pc-store', // key - value 可以自定义 将来用作存数据的key
      paths: ['user', 'cart'] // 想要把哪个模块的数据进行持久化 就把它的名称写过来
      // storage: {
      //   getItem: key => Cookies.get(key),
      //   setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
      //   removeItem: key => Cookies.remove(key)
      // }
    })
  ]
})
